import os

import openpyxl
import requests

headers = {
    'User-Agent': 'Mozilla/5.0(Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) '
                  'Chrome/84.0.4147.105 Safari/537.36 '
}

Basedir = "D://testPyDownload"


def download_by_url(url, dir, name, type):
    """
    根据url将文件下载进指定位置
    :param url: 文件地址（在线地址）
    :param dir: 文件存储地址
    :param name: 文件名
    :param type: 文件类型（后缀名）
    :return:
    """
    content = requests.get(url, headers).content
    sir = Basedir + "//" + dir
    if not os.path.exists(sir):  # 判断文件夹不存在
        os.makedirs(sir)  # 不存在则建立文件夹
    filedir = sir + "//" + name + "." + type
    with open(filedir, 'wb') as f:
        f.write(content)
        f.close()
    print(name + "下载完成")


def download_by_row(row):
    """
    根据excel将文件（pdf）下载到指定位置（D://testPyDownload）
    :param row: excel行（子文件夹位置，文件名，文件在线地址）
    :return:
    """
    dir = row[0].value
    name = row[1].value
    url = row[2].value
    content = requests.get(url, headers).content
    s_dir = Basedir + "//" + dir
    if not os.path.exists(s_dir):  # 判断文件夹不存在
        os.makedirs(s_dir)  # 不存在则建立文件夹
    filedir = s_dir + "//" + name + ".pdf"
    with open(filedir, 'wb') as f:
        f.write(content)
        f.close()
    print(name + "下载完成")


def read_excel_xlsx(url, sheet=0):
    """
    读取excel，仅支持xlsx
    :param url: excel文件地址
    :return: excel数据（行集合）
    """
    workbook = openpyxl.load_workbook(url)
    worksheets = workbook.worksheets[sheet]
    rows = worksheets.rows
    return rows
